package com.itheima.service;

import com.itheima.entity.PageResult;
import com.itheima.exceptions.BusinessException;
import com.itheima.pojo.Permission;

import java.util.List;

/**
 * @author W.J.Y
 */
public interface PermissionService {

    /**
     * 新增权限
     * @param permission    权限实例
     * @throws BusinessException    可能出现的业务异常
     */
    void add(Permission permission) throws BusinessException;

    /**
     * 编辑权限
     * @param permission    权限实例
     * @throws BusinessException    可能出现的业务异常
     */
    void update(Permission permission) throws BusinessException;

    /**
     * 查询全部权限
     * @return  全部权限信息
     */
    List<Permission> findAll();

    /**
     * 根据ID删除权限
     * @param id    权限ID
     * @throws BusinessException    可能出现的业务异常
     */
    void delete(int id) throws BusinessException;

    /**
     * 分页查询语句
     * @param pageNum   当前页
     * @param pageSize  每页条数
     * @param queryString   查询条件
     * @return  分页返回结果
     */
    PageResult findPage(int pageNum, int pageSize, String queryString);

    /**
     * 根据ID查询权限信息
     * @param id    权限ID
     * @return  查询结果
     */
    Permission findById(int id);
}
